package com.amigo.online.consumer.merchant.service;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.amigo.online.common.core.response.Response;
import com.amigo.online.common.param.dto.goods.AroundGoodsDto;
import com.amigo.online.common.param.dto.goods.GoodsEditDto;
import com.amigo.online.common.param.dto.goods.GoodsManagerDto;

/**
 * <code>MerchantCustomerService.java</code>
 * <p>
 *
 * </p>
 * <p>
 * 
 * @company Amigo
 * @author LuChen
 * @time 2018年12月17日 下午5:15:12
 * @version 1.0
 * @lastUpdate 无
 *             </p>
 */
@FeignClient(name = "amigo-online-provider-merchant")
public interface GoodsService {

	@RequestMapping(value = "/goods/search", method = RequestMethod.POST)
	ResponseEntity<Response> findAroundGoods(AroundGoodsDto aroundGoodsDto);

	@RequestMapping(value = "/goods/goodsDetail/{goodsId}", method = RequestMethod.GET)
	ResponseEntity<Response> getgoodsDetail(@PathVariable("goodsId") Long goodsId);

	@RequestMapping(value = "/goods/merchantGoods", method = RequestMethod.GET)
	ResponseEntity<Response> getGoodsOrderBYField(@RequestParam("merchantId") Long merchantId,
			@RequestParam("page") Integer page, @RequestParam("size") Integer size, @RequestParam("type") Integer type,
			@RequestParam(name = "categoryId", required = false) Long categoryId);

	@RequestMapping(value = "/goods/shelf", method = RequestMethod.POST)
	ResponseEntity<Response> shelfMerchantGoodsByGoodsId(GoodsManagerDto goodsManagerDto);

	@RequestMapping(value = "/goods/obtained", method = RequestMethod.POST)
	ResponseEntity<Response> obtainedMerchantGoodsByGoodsId(GoodsManagerDto goodsManagerDto);

	@RequestMapping(value = "/goods/delete", method = RequestMethod.POST)
	ResponseEntity<Response> deleteMerchantGoodsByGoodsId(GoodsManagerDto goodsManagerDto);

	@RequestMapping(value = "/goods/edit", method = RequestMethod.POST)
	ResponseEntity<Response> editMerchantGoods(GoodsEditDto goodsEditDto);

	@RequestMapping(value = "/goods/new", method = RequestMethod.POST)
	ResponseEntity<Response> newMerchantGoods(GoodsEditDto goodsEditDto);

	@RequestMapping(value = "/goods/v2/search", method = RequestMethod.POST)
	ResponseEntity<Response> findAroundPeopleV2(AroundGoodsDto aroundGoodsDto);
}
